package br.com.monitor.dao;

import static org.junit.Assert.fail;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class InformacoesFisicasTest {

	InformacoesFisicas info;
	
	@Test
	public void testaConstrutor(){
		
		try{
			info = new InformacoesFisicas(80.0, 170.0, 90.0, 70.0, 30.0, 60.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		try{
			info = new InformacoesFisicas(-2.0, 170.0, 90.0, 70.0, 30.0, 60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Peso invalido!", e.getMessage());
		}
		
		try{
			info = new InformacoesFisicas(80.0, -170.0, 90.0, 70.0, 30.0, 60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Altura invalida!", e.getMessage());
		}
		
		try{
			info = new InformacoesFisicas(80.0, 170.0, -90.0, 70.0, 30.0, 60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Medida invalida!", e.getMessage());
		}
		
		try{
			info = new InformacoesFisicas(80.0, 170.0, 90.0, -70.0, 30.0, 60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Medida invalida!", e.getMessage());
		}
		
		try{
			info = new InformacoesFisicas(80.0, 170.0, 90.0, 70.0, -30.0, 60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Medida invalida!", e.getMessage());
		}
		
		try{
			info = new InformacoesFisicas(80.0, 170.0, 90.0, 70.0, 30.0, -60.0);
			fail();
		}
		catch(Exception e){
			Assert.assertEquals("Medida invalida!", e.getMessage());
		}
	}
	
	@Before
	public void constroiInformacoes(){
		try{
			info = new InformacoesFisicas(80.0, 170.0, 90.0, 70.0, 30.0, 60.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
	}
	
	@Test
	public void testaAlteracoes(){
		try{
			info.setAltura(81.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(81.0, info.getAltura(), 0);
		
		
		try{
			info.setMedidaAbdomen(50.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(50.0, info.getMedidaAbdomen(), 0);
		
		
		try{
			info.setMedidaCintura(44.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(44.0, info.getMedidaCintura(), 0);
		
		
		try{
			info.setMedidaPeito(73.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(73.0, info.getMedidaPeito(), 0);
		
		
		try{
			info.setMedidaPerna(48.0);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(48.0, info.getMedidaPerna(), 0);
		
		
		try{
			info.setPeso(72.3);
		}
		catch(Exception e){
			Assert.fail("Nao deveria dar erro!");
		}
		
		Assert.assertEquals(72.3, info.getPeso(), 0);
	}

}
